
namespace ActivUFRJ.Classes.Usuario
{

    public class DBMgrUsuario : Connection.MySQL
    {

        public DBMgrUsuario() : base(ref Connection.DBConnection.myConnection)
        {

        }

        public bool ChecaSeLoginJaRegistrado(string login)
        {
            try
            {
                string sql = "select * from usuarios where usr_login = '" + login.Replace("'", "''") + "'";
                this.SetSQL(sql);

                if (!this.IsTableOver()) return true;
                else return false;

                Dispose();
            }
            catch 
            {
                return true;
            }
        }

        internal System.Data.DataTable GetListaUsuariosCadastradosNasMinhasComunidades(Usuario usuario)
        {
            try
            {

                // como no Activ nao existe o conceito de 'amigo' (ainda) =),
                // busco os usuarios que participam das mesmas comunidades
                // que eu participo.
                string sql = "select USR_ID, concat(usr_nome, ' ', usr_sobrenome) as usr_nome_completo  from usuarios " +
                                "where usr_id in " +
                                "( " +
                                    "SELECT usr_id FROM comunidade_usuarios " +
                                    "where com_id in " +
                                    "( " +
                                        "select com_id from comunidade_usuarios where usr_id = " + usuario.ID.ToString() +
                                    ") " +
                                "and usr_id <> 6 " +
                                ") ";

                this.SetSQL(sql);
                return this.ReturnTable();
            }
            catch
            {
                return null;
            }
        }

        internal System.Data.DataTable GetListaUsuarios(ActivUFRJ.Classes.Comunidade.Comunidade comunidade, int numeroRegistros)
        {
            try
            {
                string sql = "select COM_ID, usuarios.USR_ID, CONCAT(USR_NOME, ' ', USR_SOBRENOME) AS USR_NOME_COMPLETO, USR_LINK_IMAGEM " +
                                "from comunidade_usuarios " +
                                "inner join usuarios on " +
                                "comunidade_usuarios.USR_ID = usuarios.usr_id " +
                                "WHERE COM_ID = " + comunidade.ID.ToString();

                if (numeroRegistros > 0) sql += " limit " + numeroRegistros.ToString();

                this.SetSQL(sql);
                return this.ReturnTable();
            }
            catch
            {
                return null;
            }
        }
    }
}